package leetcode.LinkedList;

/**
 * @author MaoLin Wang
 * @date 2020/8/28 9:36 下午
 */
public class DelAllTarget {

    public static ListNode delAllTarget(ListNode head,int target){
        if (head==null){
            return null;
        }
        if (head.val==target){
             head=head.next;
        }
        head.next= del(head.next,target);
        return head;
    }

    private static ListNode del(ListNode node, int target) {
        if (node==null){
            return null;
        }
        if (node.val==target){
            node=node.next;
           return del(node,target);
        }else {
            node.next=del(node.next,target);
        }
        return node;
    }

    public static void main(String[] args) {
        ListNode l1=new ListNode(0);
        l1.next=new ListNode(5);
        l1.next.next=new ListNode(3);
        l1.next.next.next=new ListNode(4);
        l1.next.next.next.next=new ListNode(4);
        l1.next.next.next.next.next=new ListNode(3);
        l1.next.next.next.next.next.next=new ListNode(5);
        l1.next.next.next.next.next.next.next=new ListNode(3);
        ListNode listNode = delAllTarget(l1, 3);
        ListNode.printNode(listNode);
    }
}
